草庐IT

位置数组中的 MongoDb geoWithin

全部标签

arrays - 如何在 ruby​​ 中对哈希数组进行排序

我有一个数组,每个元素都是一个包含三个键/值对的散列::phone=>"2130001111",:zip=>"12345",:city=>"sometown"我想按zip对数据进行排序,以便同一区域中的所有phone都在一起。Ruby是否有简单的方法来做到这一点?will_paginate可以对数组中的数据进行分页吗? 最佳答案 简单:array_of_hashes.sort_by{|hsh|hsh[:zip]}注意:当使用sort_by时,您需要将结果分配给一个新变量:array_of_hashes=array_of_hashes

ruby - 计数、尺寸、长度……Ruby 中的选择太多了吗?

我似乎找不到关于这个的明确答案,我想确保我理解到“第n级”:-)a={"a"=>"Hello","b"=>"World"}a.count#2a.size#2a.length#2a=[10,20]a.count#2a.size#2a.length#2那么该用哪个呢?如果我想知道a是否有多个元素,那么这似乎并不重要,但我想确保我了解真正的区别。这也适用于数组。我得到了相同的结果。此外,我意识到count/size/length与ActiveRecord有不同的含义。我现在最感兴趣的是纯Ruby(1.92),但如果有人想谈谈AR带来的不同,我也将不胜感激。谢谢!

ruby - Ruby 中的前导零

我的应用程序中有字段hr和min,它们都是整数。对于hr字段,如果用户输入“1”,我希望Rails在将其保存到数据库之前自动将其填充为“01”。同样对于min字段,如果用户输入“0”,它应该输入为“00”。我该怎么做? 最佳答案 最好将它存储为一个整数,并按照您在运行时描述的方式显示它。每种语言都有自己的填充零的方法-对于Ruby,您可以使用String#rjust.此方法使用给定的填充字符填充字符串(右对齐),使其成为给定的长度。str.rjust(integer,padstr='')→new_strIfintegerisgrea

ruby - 如何交换哈希中的键和值

如何交换哈希中的键和值?我有以下哈希:{:a=>:one,:b=>:two,:c=>:three}我想转换成:{:one=>:a,:two=>:b,:three=>:c}使用map似乎相当乏味。有更短的解决方案吗? 最佳答案 Ruby有一个Hash辅助方法,让您可以将Hash视为倒置的(本质上,通过让您通过值访问键):{a:1,b:2,c:3}.key(1)=>:a如果你想保留反转哈希,那么Hash#invert应该适用于大多数情况:{a:1,b:2,c:3}.invert=>{1=>:a,2=>:b,3=>:c}但是...如果您有

ruby - 数组包含来自另一个数组的任何值?

测试一个数组是否包含第二个数组中的任何元素的最有效方法是什么?下面的两个例子,试图回答foods是否包含cheeses中的任何元素的问题:cheeses=%w(chedderstiltonbriemozzarellafetahaloumireblochon)foods=%w(pizzafetafoodsbreadbiscuitsyoghurtbacon)putscheeses.collect{|c|foods.include?(c)}.include?(true)puts(cheeses-foods).size 最佳答案 (chee

ruby - 如何在 Ruby 中获取数组的交集、并集和子集?

我想为名为Multiset的类创建不同的方法.我拥有所有必需的方法,但我不确定如何编写交集、联合和子集方法。对于交集和并集,我的代码是这样开始的:defintersect(var)x=Multiset.newend这是一个例子:X=[1,1,2,4]Y=[1,2,2,2]那么X和Y的交集就是[1,2]。 最佳答案 我假设X和Y是数组?如果是这样,有一种非常简单的方法可以做到这一点:x=[1,1,2,4]y=[1,2,2,2]#intersectionx&y#=>[1,2]#unionx|y#=>[1,2,4]#differencex

ruby - 如何查找并返回数组中的重复值

arr是字符串数组:["hello","world","stack","overflow","hello","again"]检查arr是否有重复项的简单而优雅的方法是什么,如果有,则返回其中一个(无论是哪个)?例子:["A","B","C","B","A"]#=>"A"or"B"["A","B","C"]#=>nil 最佳答案 a=["A","B","C","B","A"]a.detect{|e|a.count(e)>1}我知道这不是一个非常优雅的答案,但我喜欢它。这是一个漂亮的类轮代码。除非你需要处理庞大的数据集,否则工作得很好。

ruby - 更改 Ruby 中散列中的每个值

我想更改散列中的每个值,以便在值前后添加“%”{:a=>'a',:b=>'b'}必须改为{:a=>'%a%',:b=>'%b%'}执行此操作的最佳方法是什么? 最佳答案 在Ruby2.1和更高版本中你可以这样做{a:'a',b:'b'}.map{|k,str|[k,"%#{str}%"]}.to_h 关于ruby-更改Ruby中散列中的每个值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

ruby - Ruby 中的安全整数解析

我有一个字符串,例如'123',我想将它转换为整数123。我知道您可以简单地执行some_string.to_i,但这会将'lolipops'转换为0,这不是我的效果心里。当我尝试转换一些无效的东西时,我希望它在我的脸上爆炸,伴随着一个美好而痛苦的Exception。否则,我无法区分有效的0和根本不是数字的东西。编辑:我一直在寻找没有正则表达式欺骗的标准方法。 最佳答案 Ruby内置了这个功能:Integer('1001')#=>1001Integer('1001nights')#ArgumentError:invalidvalue

ruby - 如何在 YAML 中创建一个空数组?

array_with_three_elements:-1-2-3empty_array:有什么方法可以指定empty_array:是一个没有元素的数组,比如[]?当我将它加载到ruby​​哈希中时,我希望它知道它是一个数组。谢谢 最佳答案 尝试使用[],例如:empty_array:[]所以在Ruby中你有:x=YAML::load("empty_array:[]")x#=>{"empty_array"=>[]} 关于ruby-如何在YAML中创建一个空数组?,我们在StackOverf